var d1 = require("deviceone");
var dojs = require("dojs");
var myjs = require("myjs/my");
var do_Global = d1.sm("do_Global");
var do_Page = d1.sm("do_Page");
var do_App = d1.sm("do_App");
var do_DataCache = d1.sm("do_DataCache");
var do_Timer_code = d1.mm("do_Timer");
// 验证码
var validation = null;
// 接收验证码的手机号
var phone = null;
module.exports.invoke = function(data) {
	if (data.type == "obtain_validation") {

		// 防止前面没有验证
		if (dojs.core.isNullData(data.phone)) {
			dojs.core.toast("手机号不允许空");
			return;
		}
		// 检测手机号格式
		if (!myjs.common.isPhoneAndTeleNumber(data.phone)) {
			dojs.core.toast("请输入正确的手机号");
			return;
		}
		do_Page.fire("validationBtnStatus", "close");
		// 检测手机号是否注册，true：已注册，false：未注册
		dojs.http.ajax({
			url : do_Global.getMemory("check_mobile_url"),
			type : "GET",
			parent : "needWaitting",
			data : {
				mobilePhone : data.phone
			},
			success : function(successData) {// 返回值data本身就是json对象

				if (successData.success) {
					dojs.core.toast("该手机号码已被注册");
					do_Page.fire("validationBtnStatus", "open");
				} else {
					phone = data.phone;
					sendValidateCode(phone,data.time);
				}
			},
			error : function(errorData) {
				dojs.core.toast("网络错误");
				do_Page.fire("validationBtnStatus", "open");
			}
		});
		return;
	}
	// 用户注册
	if (data.type == "register") {
		// 验证
		if (dojs.core.isNullData(data.phone)) {
			dojs.core.toast("手机号不允许空");
			return;
		}
		// 检测手机号格式
		if (!myjs.common.isPhoneAndTeleNumber(data.phone)) {
			dojs.core.toast("请输入正确的手机号");
			return;
		}
		// 验证手机号是否一致
		if (!(data.phone == phone)) {
			dojs.core.toast("请输入收到验证码的手机号");
			return;
		}
		// 验证码验证
		if (dojs.core.isNullData(data.validation)) {
			dojs.core.toast("请输入手机收到的验证码");
			return;
		}
		if (!(data.validation == validation)) {
			dojs.core.toast("验证码错误");
			return;
		}
		// 密码验证
		if (dojs.core.isNullData(data.pwd)) {
			dojs.core.toast("请输入密码");
			return;
		}
		if (dojs.core.isNullData(data.confirmPwd)) {
			dojs.core.toast("请输入确认密码");
			return;
		}
		if (data.pwdLength < 6) {
			dojs.core.toast("密码要求6位及以上");
			return;
		}
		if (!(data.pwd == data.confirmPwd)) {
			dojs.core.toast("两次密码输入不一致");
			return;
		}
		// 注册
		dojs.http.ajax({
			url : do_Global.getMemory("register_url"),
			type : "GET",
			parent : "needWaitting",
			data : {
				mobilePhone : data.phone,
				password : data.pwd
			},
			success : function(successData) {// 返回值data本身就是json对象

				if (!successData.success) {
					dojs.core.toast("注册失败,请稍后重试");
					return;
				}
				dojs.core.toast(successData.message);
				// 保存数据
				if (!dojs.core.isNullData(successData.data))
					do_DataCache.saveData(do_Global.getMemory("data_label").user_data,
							JSON.stringify(successData.data));
				if (!dojs.core.isNullData(successData.token))
					do_DataCache.saveData(do_Global.getMemory("data_label").token,
							successData.token);
				//打开补充信息界面
				dojs.core.p(JSON.stringify(successData));
				var entrance = require("source://script/mymodule/entrance");
				entrance.openPerfectInfo.openPerfectInfoPage();
				dojs.core.closePage();
				do_App.closePageToID("loginPage");
			},
			error : function(errorData) {
				dojs.core.toast("网络错误");
			}
		});

		return;
	}

};

/** ------------------------------------------------------------- */
// 发送验证码
function sendValidateCode(phone,time) {

	dojs.core.toast("验证码发送中...");
	// 处理验证码按钮

	dojs.http.ajax({
		url : do_Global.getMemory("send_validation_url"),
		type : "GET",
		data : {
			mobilePhone : phone,
			desc : "注册"
		},
		success : function(successData) {
			if (!successData.success) {
				dojs.core.toast("验证码发送失败，请稍后重试");
				do_Page.fire("validationBtnStatus", "open");
				return;
			}
			dojs.core.p(JSON.stringify(successData));
			// 获取验证码
			if (dojs.core.isNullData(successData.data)) {
				dojs.core.toast("验证码为空,请联系管理员");
				do_Page.fire("validationBtnStatus", "open");
				return;
			}
			dojs.core.toast(successData.message);
			validation = successData.data;
			//开始倒计时
			initTimeCode(time);
			do_Timer_code.start();
		},
		error : function(errorData) {
			do_Page.fire("validationBtnStatus", "open");
			dojs.core.toast("网络错误");
		}
	});
}
//初始化倒计时---------------------------------------------------------------------
function initTimeCode() {
	do_Timer_code.delay = 0;
	do_Timer_code.interval = 1000;
	var finishedTime=60;
	do_Timer_code.on("tick", function(){
	    if(finishedTime > 0){
	    	do_Page.fire("changevalidationText", "("+finishedTime + "秒)重发");
	    	finishedTime--;
	    	return;
	    }
	    do_Timer_code.stop();
	    do_Page.fire("changevalidationText", "获取验证码");
	    do_Page.fire("validationBtnStatus", "open"); 
	});
}
